<?php


namespace app\manage\model;


use think\Db;

class Rbac
{
    /**
     * 角色列表
     */
    public function index(){
        $data = Db::name('role')
            ->order(["r_id" => "DESC"])
            ->select();

        return $data;
    }

    /**
     * 添加，编辑角色
     */
    public function Add($data){

        if(empty($data['r_id'])){
            $info['name']=$data['name'];
            $info['create_time']=time();
            //$info['parent_id']=$data['parent_id'];
            $info['parent_id']=0;

            $one=Db::name('role')->where(['name'=>$data['name']])->find();
            if(!empty($one)){
                returnJson(-2004,'该角色名称已存在');
            }

            Db::name('role')->insert($info);

        }else{
            $id=$data['r_id'];
            $info['name']=$data['name'];
            //$info['parent_id']=$data['parent_id'];

            $one=Db::name('role')->where(['name'=>$data['name'],'r_id'=>['neq',$id]])->find();
            if(!empty($one)){
                returnJson(-2004,'该角色名称已存在');
            }

            Db::name('role')->where('r_id',$id)->update($info);
        }

        return true;
    }

    /**
     * 删除角色
     */
    public function del($id){
        if ($id == 1) {
            returnJson(-2004,'超级管理员角色不能被删除');
        }
        $count = Db::name('RoleUser')->where('role_id', $id)->count();
        if ($count > 0) {
            returnJson(-2004,'该角色已经有用户');

        } else {
            Db::name('role')->delete($id);
        }

        return true;
    }

    /**
     * 角色详情
     */
    public function detail($id){
        $data = Db::name('role')
            ->field('r_id,name')
            ->where(["r_id" => $id])
            ->find();

        return $data;
    }

    /**
     * 角色权限分配
     */
    public function authRole(){

    }

}